13 research outputs found

    Symbolic Programming of Distributed Cyber-Physical Systems

    Get PDF
    Cyber-Physical Systems (CPSs) tightly integrate physical world phenomena and cyber aspects of computational units. The composition of physical, computational and communication systems demands different levels and types of abstraction as well as novel programming methodologies allowing for homogeneous programming, knowledge representation and exchange on heterogeneous devices. Current modeling approaches, frameworks and architectures result fairly inadequate to the task, especially when resource-constrained devices are involved. This work proposes symbolic computation as an effective solution to program resource constrained CPS devices with code maintaining strict ties to high-level specifications expressed in natural language while supporting interoperability among heterogeneous devices. Design, architectural, programming, and deployment aspects of CPSs are addressed through a single formalism unifying the specification of both cyber and physical parts of CPSs. In particular, programming patterns are modeled as sequences of words adhering to natural language syntax and semantics. Given a software under test (SUT), i.e. an input program expressed as a natural language sentence, formal specifications are used to generate oracles for sentence verification and to generate input test cases. The choice of natural language inspired programming supplies a mechanism for the development of the same software on different hardware platforms, ensuring interoperability among heterogeneous devices. Formal specifications also permit to generate stress tests in order to verify that program components behave as expected in repeated execution. In order to make high-level symbolic programs run on real hardware devices with no loss of expressivity during the translation of high-level specifications into an executable implementation, this work proposes a novel software architecture, Distributed Computing for Constrained Devices (DC4CD), as a supporting platform. The proposed architecture enables symbolic processing and distributed computing on devices with very limited energy, communication and processing capabilities that can be integrated into CPSs. In particular, DC4CD has been extensively used to test the symbolic distributed programming methodology on Wireless Sensor Networks (WSNs) that include nodes with actuation abilities. The platform offers networking abstractions for the exchange of symbolic code among peer devices and allows designers to change at runtime, even wirelessly on deployed nodes, not only the application code but also system code.Cyber-Physical Systems (CPSs) tightly integrate physical world phenomena and cyber aspects of computational units. The composition of physical, computational and communication systems demands different levels and types of abstraction as well as novel programming methodologies allowing for homogeneous programming, knowledge representation and exchange on heterogeneous devices. Current modeling approaches, frameworks and architectures result fairly inadequate to the task, especially when resource-constrained devices are involved. This work proposes symbolic computation as an effective solution to program resource constrained CPS devices with code maintaining strict ties to high-level specifications expressed in natural language while supporting interoperability among heterogeneous devices. Design, architectural, programming, and deployment aspects of CPSs are addressed through a single formalism unifying the specification of both cyber and physical parts of CPSs. In particular, programming patterns are modeled as sequences of words adhering to natural language syntax and semantics. Given a software under test (SUT), i.e. an input program expressed as a natural language sentence, formal specifications are used to generate oracles for sentence verification and to generate input test cases. The choice of natural language inspired programming supplies a mechanism for the development of the same software on different hardware platforms, ensuring interoperability among heterogeneous devices. Formal specifications also permit to generate stress tests in order to verify that program components behave as expected in repeated execution. In order to make high-level symbolic programs run on real hardware devices with no loss of expressivity during the translation of high-level specifications into an executable implementation, this work proposes a novel software architecture, Distributed Computing for Constrained Devices (DC4CD), as a supporting platform. The proposed architecture enables symbolic processing and distributed computing on devices with very limited energy, communication and processing capabilities that can be integrated into CPSs. In particular, DC4CD has been extensively used to test the symbolic distributed programming methodology on Wireless Sensor Networks (WSNs) that include nodes with actuation abilities. The platform offers networking abstractions for the exchange of symbolic code among peer devices and allows designers to change at runtime, even wirelessly on deployed nodes, not only the application code but also system code

    An AMI System for User Daily Routine Recognition and Prediction

    No full text
    Ambient Intelligence (AmI) defines a scenario involving people living in a smart environment enriched by pervasive sensory devices with the goal of assisting them in a proactive way to satisfy their needs. In a home scenario, an AmI system controls the environment according to a user's lifestyle and daily routine. To achieve this goal, one fundamental task is to recognize the user's activities in order to generate his daily activities profile. In this chapter,we present a simpleAMI system for a home scenario to recognize and predict users' activities.With this predictive capability, it is possible to anticipate their actions and improve their quality of life. Our approach uses a Hidden Markov Model (HMM) to recognize activities and deal with the intrinsic uncertainty of sensory information. The concepts of this domain have been formally defined to allow a higher-level system to enrich its knowledge bas

    Hardware and Software Platforms for Distributed Computing on Resource Constrained Devices

    No full text
    The basic idea of distributed computing is that it is possible to solve a large problem by using the resources of various computing devices connected in a network. Each device interacts with each other in order to process a part of a problem, contributing to the achievement of a global solution. Wireless sensor networks (WSNs) are an example of distributed computing on low resources devices. WSNs encountered a considerable success in many application areas. Due to the constraints related to the small sensor nodes capabilities, distributed computing in WSNs allows to perform complex tasks in a collaborative way, reducing power consumption and increasing battery life. Many hardware platforms compose the ecosystem of WSNs and some lightweight operating systems have also been designed to ease application deployment, to ensure efficient resources management, and to decrease energy consumption. In this chapter we focus on distributed computing from several points of view emphasizing important aspects, ranging from hardware platforms to applications on resource constrained devices

    A Fast and Interactive Approach to Application Development on Wireless Sensor and Actuator Networks

    No full text
    In Wireless Sensor and Actuator Networks (WSANs) sensor and actuator devices are connected through radio links to perform tasks in many different contexts. Conven- tionally, applications for WSANs are developed using traditional operating systems which application code is linked with at the end of a cross-compilation process. We propose instead an alternative approach for building applications on WSANs that is based on interactivity and does not require time consuming cross-compilation phases. In our development methodology, it is possible to define procedures and services according to the application target, simultaneously test them and reprogram the nodes interactively when needed, even after network deployment. The main advantage of our approach is flexibility since it lets nodes exchange data and executable code, permits to define new syntactic constructs at runtime, and supports the creation of application-oriented languages

    WSN Design and Verification Using On-Board Executable Specifications

    No full text
    The gap between informal functional specifications and the resulting implementation in the chosen programming language is notably a source of errors in embedded systems design. In this paper, we discuss a methodology and a software platform aimed at coping with this issue in programming resource-constrained wireless sensor network nodes (WSNs). Whereas the typical development model for the WSNs is based on cross compilation, the proposed approach supports high-level symbolic coding of abstract models and distributed applications, as well as their test and their execution, directly on the target hardware. As a working example, we discuss the application of our methodology to specify the functional behavior of a radio transceiver chip. The resulting executable specifications are augmented with automatically generated runtime verification code. Our approach is also compared to code development for two prominent WSN general-purpose operating systems

    DC4CD: A Platform for Distributed Computing on Constrained Devices

    No full text
    In this article, we present Distributed Computing for Constrained Devices (DC4CD), a novel software architecture that supports symbolic distributed computing on wireless sensor networks. DC4CD integrates the functionalities of a high-level symbolic interpreter, a compiler, and an operating system, and includes networking abstractions to exchange high-level symbolic code among peer devices. Contrarily to other architectures proposed in the literature, DC4CD allows for changes at runtime, even on deployed nodes of both application and system code. Experimental results show that DC4CD is more efficient in terms of memory usage than existing architectures, with which it also compares well in terms of execution efficiency

    Programming Distributed Applications with Symbolic Reasoning on WSNs

    No full text
    Programming Wireless Sensor Networks (WSNs) is a complex task for which existing approaches adopt rigid architectures that are only suitable for specific application fields. In previous papers we introduced a programming methodology and a lightweight middleware based on high-level programming and executable code exchange for distributed processing on WSNs. In this paper, we show how high-level programming can be effectively used on WSNs to implement symbolic reasoning. In order to prove the feasibility of our approach, we present a Fuzzy Logic system where the value updates and the rule evaluations are performed in a distributed way. Through the proposed methodology, we discuss the development of an Ambient Intelligence application. In particular, we describe how the nodes of a WSN may compute an estimation of the user thermal comfort by exchanging symbolic rather than numerical data, and control an HVAC (Heating, Ventilation and Air Conditioning) system accordingly

    A Lightweight Middleware Platform for Distributed Computing on Wireless Sensor Networks

    Get PDF
    The peculiar features of Wireless Sensor Networks (WSNs) suggest to exploit the distributed computing paradigm to perform complex tasks in a collaborative manner, in order to overcome the constraints related to sensor nodes limited capabilities. In this context, we describe a lightweight middleware platform to support the development of distributed applications on WSNs. The platform provides just a minimal general-purpose software layer, while the application components, including communication and processing algorithms, as well as the exchanged data, are described symbolically, with neither preformed syntax nor strict distinction between data and code. Our approach allows for interactive development of applications on each node, and requires no cross-compilation, a common practice that makes the development of WSN applications rigid and time-consuming. This way, tasks and behavior of each node can be modified at runtime, even after the network deployment, by sending the node executable code

    A Lightweight Network Discovery Algorithm for Resource-constrained IoT Devices

    No full text
    Although quite simple, existing protocols for the IoT suffer from the inflexibility of centralized infrastructures and require several configuration stages. The implementation of these protocols is often prohibitive on resource-constrained devices. In this work, we propose a distributed lightweight implementation of network discovery for simple IoT devices. Our approach is based on the exchange of symbolic executable code among nodes. Based on this abstraction, we propose an algorithm that makes even IoT resource-constrained nodes able to construct the network topology graph incrementally and without any a priori information about device positioning and presence. The minimal set of executable symbols to be defined on the devices is identified and simulation results for different topologies are reported

    A symbolic distributed event detection scheme for Wireless Sensor Networks

    No full text
    Due to the possibility of extensive and pervasive deployment of many tiny sensor devices in the area of interest, Wireless Sensor Networks (WSNs) result particularly suitable to detect significant events and to react accordingly in industrial and home scenarios. In this context, fuzzy inference systems for event detection in WSNs have proved to be accurate enough in treating imprecise sensory readings to decrease the number of false alarms. Besides reacting to event occurrences, the whole network may infer more information to enrich the event semantics resulting from reasoning processes carried out on the individual nodes. Contextual knowledge, including spatial and temporal relationships, as well as neighborhood confidence levels, can be used to improve the detection accuracy, but requires to extend the number of variables involved in the reasoning process
    corecore